.TH std::mktime 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::mktime \- std::mktime

.SH Synopsis
   Defined in header <ctime>
   std::time_t mktime( std::tm* time );

   Converts local calendar time to a time since epoch as a std::time_t object.
   time->tm_wday and time->tm_yday are ignored. The values in time are permitted to be
   outside their normal ranges.

   A negative value of time->tm_isdst causes mktime to attempt to determine if Daylight
   Saving Time was in effect.

   If the conversion is successful, the time object is modified. All fields of time are
   updated to fit their proper ranges. time->tm_wday and time->tm_yday are recalculated
   using information available in other fields.

.SH Parameters

   time - pointer to a std::tm object specifying local calendar time to convert

.SH Return value

   Time since epoch as a std::time_t object on success or -1 if time cannot be
   represented as a std::time_t object.

.SH Notes

   If the std::tm object was obtained from std::get_time or the POSIX strptime, the
   value of tm_isdst is indeterminate, and needs to be set explicitly before calling
   mktime.

.SH Example

   Construct a local time explicitly.


// Run this code

 #include <ctime>
 #include <iomanip>
 #include <iostream>
 #include <sstream>

 int main()
 {
     setenv("TZ", "/usr/share/zoneinfo/America/Los_Angeles", 1); // POSIX-specific

     std::tm tm{}; // Zero initialise
     tm.tm_year = 2020 - 1900; // 2020
     tm.tm_mon = 2 - 1; // February
     tm.tm_mday = 15; // 15th
     tm.tm_hour = 10;
     tm.tm_min = 15;
     tm.tm_isdst = 0; // Not daylight saving
     std::time_t t = std::mktime(&tm);
     std::tm local = *std::localtime(&t);

     std::cout << "local: " << std::put_time(&local, "%c %Z") << '\\n';
 }

.SH Possible output:

 local: Sat Feb 15 10:15:00 2020 PST

.SH See also

   localtime converts time since epoch to calendar time expressed as local time
             \fI(function)\fP
   C documentation for
   mktime
